Part Number Hot Search : 
IRFP133 SL622 N6511 B3834 API840N HSA733 TM100 032103
Product Description
Full Text Search
 

To Download AT43USB370E-AC Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  1 features ? usb 2.0 full speed host/function processor ? real-time host/function switching capability ? internal usb and system interface controllers ? 32-bit generic system processor interface with dma ? separate tx and rx buffers for host and function operations ? in-system firmware upgrade  autonomous usb host operation without system processor intervention ? device enumeration ? usb protocol management ? bus bandwidth reclamation ? status handling ? control, bulk, interrupt and isochronous transfers ? supports up to 7 usb devices concurrently  full-speed function controller ? 1 bi-directional control endpoint ? 6 programmable (maximum packet size and endpoint type) endpoints ? control, interrupt, bulk and isochronous transfer support ? automatic retry for non-isochronous endpoints  integrated usb firmware ? easy-to-use, ansi c compliant api usb device driver development ? embedded, os agnostic usb host stack ? embedded system interface controller driver ? embedded usb hub driver  6 mhz operation  1.8 v and 3.3 v operation  100-pin lqfp package description atmel's at43usb370 is a usb 2.0 compliant, dual-role, full-speed host/function pro- cessor designed specifically to enable point-to-point usb connectivity for embedded devices. it features an integrated usb host stack, a system interface driver, on-chip usb signaling hardware, 32-bit generic system processor interface with dma support, and on-the-fly host/functi on switching capability. the on-chip usb hardware features a usb transceiver, a serial interface engine (sie), a sie controller, and an sof generation block. it supports the physical and data link layer of the usb protocol whereas the usb transaction layer is implemented in firmware. in host mode, the integrated usb firmware consists of the host usb controller driver (husbcd) running on the usb controller (usbc) and the host system interface controller driver (hsicd) resident on the system interface controller (sic). the husbcd provides complete usb protocol management including device enumera- tion, transaction management, scheduling and frame management, and bus reclamation. the hsicd serves as an interface between the husbcd and applica- tions resident on the external system processor. it handles all of the high-level data flow management during a usb transaction. together, the husbcd and the hsicd deliver complete usb host operations autonomously, without the intervention of the system processor. usb 2.0 full-speed host/function processor at43usb370 rev. 3340b?usb?12/03
2 at43usb370 3340b?usb?12/03 the at43usb370 communicates with the external system processor through its generic 32-bit host processor interface. this system interface contains 2 kbytes of fifo and a dma engine designed to ensure maximum bus utilization. the automatic usb retry mechanism minimizes data traffic across the system interface. as a function, the at43usb370 operates in full-speed mode. it supports one control endpoint and a maximum of six programmable (maximum packet size and endpoint type) endpoints. the internal usb controller runs the function firmware that manages usb enumeration and data flow control without system processor intervention. communication between the at43usb370 firmware and applications resident in the system processor is realized through a small set of ansi c compliant, system interface application protocol interfaces (apis). this api set encapsulates the complete usb functionality. it is used as the basic building blocks for constructing application specific usb device drivers of any type. the at43usb370, with its highly integrated usb hardware/firmware architecture, not only hides the complexity of the traditional usb design, but also frees system resources from being burdened by timing critical usb activities. it is an ideal solution for point-to-point usb connec- tivity in the resource constrained embedded environment. pin configuration figure 1. at43usb370 100-lead lqfp a7 a6 a5 a4 a3 a2 a1 a0 cs_n oe_n select intr_in intr_out vdd vss vss vdd18 prog more ready done busy wait_n we_n dreq_n vss d20 d21 d22 d23 vdd d24 d25 d26 d27 vss d28 d29 d30 d31 vdd18 vss nc nc scan_en rcv_data dclk trst_n vss vdd dack_n vss bt mt vdd tp0 tp1 clk_sel vss xtal1 xtal2 vdd18 lft vss dm dp tp2 tp3 rpd_en rpu_en reset_n tck tms tdi tdo d0 d1 d2 d3 d4 d5 d6 d7 vss d8 d9 d10 d11 vdd d12 d13 d14 d15 nc vdd18 vss d16 d17 d18 d19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
3 at43usb370 3340b?usb?12/03 pin assignment pin # signal type pin # signal type pin # signal type 1 a7 input 35 xtal1 input 69 d24 bi-directional 2 a6 input 36 xtal2 output 70 vdd power supply/gnd 3 a5 input 37 vdd18 power supply/gnd 71 d23 bi-directional 4 a4 input 38 lft input 72 d22 bi-directional 5 a3 input 39 vss power supply/gnd 73 d21 bi-directional 6 a2 input 40 dm bi-directional 74 d20 bi-directional 7 a1 input 41 dp bi-directional 75 vss power supply/gnd 8 a0 input 42 tp2 input 76 d19 bi-directional 9 cs_n input 43 tp3 input 77 d18 bi-directional 10 oe_n input 44 rpd_en output 78 d17 bi-directional 11 select input 45 rpu_en output 79 d16 bi-directional 12 intr_in input 46 reset_n input 80 vss power supply/gnd 13 intr_out output 47 tck input 81 vdd18 power supply/gnd 14 vdd power supply/gnd 48 tms input 82 nc not connected 15 vss power supply/gnd 49 tdi input 83 d15 bi-directional 16 vss power supply/gnd 50 tdo output 84 d14 bi-directional 17 vdd18 power supply/gnd 51 vdd power supply/gnd 85 d13 bi-directional 18 prog input 52 vss power supply/gnd 86 d12 bi-directional 19 more input 53 trst_n input 87 vdd power supply/gnd 20 ready output 54 dclk output 88 d11 bi-directional 21 done input 55 rcv_data output 89 d10 bi-directional 22 busy output 56 scan_en input 90 d9 bi-directional 23 wait_n output 57 nc not connected 91 d8 bi-directional 24 we_n input 58 nc not connected 92 vss power supply/gnd 25 dreq_n output 59 vss power supply/gnd 93 d7 bi-directional 26 dack_n input 60 vdd18 power supply/gnd 94 d6 bi-directional 27 vss power supply/gnd 61 d31 bi-directional 95 d5 bi-directional 28 bt input 62 d30 bi-directional 96 d4 bi-directional 29 mt input 63 d29 bi-directional 97 d3 bi-directional 30 vdd power supply/gnd 64 d28 bi-directional 98 d2 bi-directional 31 tp0 input 65 vss power supply/gnd 99 d1 bi-directional 32 tp1 output 66 d27 bi-directional 100 d0 bi-directional 33 clk_sel input 67 d26 bi-directional 34 vss power supply/gnd 68 d25 bi-directional
4 at43usb370 3340b?usb?12/03 pin description pin name type description a[7:0] input address bus ? system address bus cs_n input chip_select ? from system processor. active low oe_n input output_enable ? from system processor. active low select input processor_select ? from system processor ? used to select between the usb controller (usbc) and system interface controller (sic) when firmware is downloaded to these controllers through the system processor. logic ?1? selects sic and logic ?0? selects usbc. intr_in input interrupt to at43usb370 ? from system processor. active high intr_out output interrupt from at43usb370 ? to system processor. active high vdd power supply/gnd 3.3v power supply vss power supply/gnd ground vdd18 power supply/gnd 1.8v power supply prog input program_load_enable ? from system processor ? used when the program is downloaded in the usb controller and system interface controller through the system processor. active high more input pio mode handshake signal ? from system processor. active high ready output ready ? to system processor ? used when the program is downloaded in the usb controller and system interface controller through the system processor. active high done input done ? from system processor ? used when the program is downloaded in the usb controller and system interface controller through the system processor. active high busy output busy ? to system processor ? used when the system interface controller is busy in an interrupt service routine and does not want the system processor to issue an interrupt. active high wait_n output wait ? to system processor. active low we_n input write_enable ? from system processor. active low dreq_n output dma request ? to system processor ? used to signal to the system processor that the at43usb370 wants to start a dma transfer. active low dack_n input dma acknowledge ? from system processor. active low bt input bist ? test signal mt input memory ? test signal tp0 input test pin 0 tp1 output test pin 1 tp2 input test pin 2 tp3 input test pin 3 clk_sel input external/pll clock selection ? low selects crystal-pll clock source while a high uses xtal1, bypassing the pll. xtal1 input oscillator input ? input to the inverting oscillator amplifier. xtal2 output oscillator output ? output of the inverting oscillator amplifier. lft input pll loop filter ? for proper operation of the pll, this pin should be connected through a 2.2 nf capacitor in parallel with a 470 ? resistor in series with a 22 nf capacitor to ground (vss). both capacitors must be high quality ceramic.
5 at43usb370 3340b?usb?12/03 block diagram figure 2. at43usb370 hardware dp bi-directional d+ (usb line) dm bi-directional d- (usb line) rpd_en output pull down enable rpu_en output pull up enable reset_n input reset ? active low tck input jtag clock tms input jtag mode select tdi input jtag serial data in tdo output jtag serial data out trst_n input jtag reset ? active low dclk output recovered sie dpll clock rcv_data output recovered serial data scan_en input scan test enable nc ? not connected d[31:0] bi-directional system data bus pin description (continued) pin name type description address usb controller (usbc) usb transceiver d+ d- fifos sie sie controller system processor interface data control & status registers system interface controller (sic) dma control
6 at43usb370 3340b?usb?12/03 architectural overview the at43usb370 host/function processor is availabl e in the sram version. it utilizes two on- chip microcontrollers, the usb controller (usbc) and the system interface controller (sic) to off-load usb related processing from the system processor. on power-up or reset, the system processor downloads the appropriate firmware into the usbc and sic via the system bus interface. functionally, the usbc manages the low-level usb protocol such as enumeration, frame management and transaction scheduling, in addition to handling usb hub driver. the sic pro- vides data flow management to and from the system processor. it is responsible for constructing usb packets of appropriate sizes, handling retries, channeling data to and from fifos, and providing api support to the external system processor. the usbc and the sic share the same set of on-chip control and status registers with the system processor interface. the system interface logic makes use of this register set to facili- tate data exchange between the at43usb370 and the system processor. in a typical design scenario, the at43usb370 appears as a memory mapped peripheral to the system proces- sor. externally accessible registers are shown in table 1 on page 11. the read and write accesses to the system interface registers by the system processor are made through external memory operations on the system bus. the system processor connects to the at43usb370 through the generic 32-bit system pro- cessor interface. the system interface signals consist of an address bus, a data bus, a chip select, a read enable and write enable. the on-chip dma engine provides maximum data throughput between the system processor and the on-chip usb fifo blocks. the system pro- cessor communicates with the dma engine through standard dma signaling. the embedded usb hardware consists of a usb transceiver, a serial interface engine (sie), a sie controller, an sof (start of frame) generation and a fifo block. the fifo block is divided into a 128-bytes control endpoint and 2 kbytes of memory block dynamically config- urable to support different data endpoint requirements. the at43usb370 can be configured to operate either in host mode or function mode. the mode of operation is determined by writing corresponding values to the specified registers and downloading the corresponding usbc and sic firmware to the at43usb370. the at43usb370 commences its operation once it is configured. the at43usb370 requires an external 6-mhz crystal to provide a reference clock frequency for the on-chip pll. the pll provides all of internal clock sources required for the at43usb370. please note that the at43usb370 signals use level detection, not edge detection. functional description usb transceiver a universal serial bus revision 2.0 compliant transceiver is embedded in the at43usb370. the transceiver provides the physical layer signaling and is capable of transmitting and receiv- ing serial data at 12 mbps and 1.5 mbps. the driver portion of the transceiver is differential while the receiver section is comprised of a differential and two single-ended receivers. inter- nally, the transceiver interfaces to the serial interface engine. externally, the transceiver interfaces directly with the usb connectors and cables through external termination resistors.
7 at43usb370 3340b?usb?12/03 serial interface engine (sie) the sie is implemented entirely in hardware. it performs the following functions:  clock and data recovery from incoming usb data stream  serial/parallel conversion  nrzi encoding/decoding  crc calculation (generation and checking)  generating full-speed and low-speed usb physical layer signaling  device connection/disconnection detection  token generation (in, out, sof, setup etc.)  keep alive signal for low-speed devices  bit stuffing and unstuffing sie controller this block serves as the interfaces between the sie and the usbc. it decodes the commands received from the usbc and updates the status after the end of a usb transaction. this block also controls the fifos for data and control packets and provides the usb controller access to these fifos for internal data management such as automatic retries for failed transactions. usb controller this internal microcontroller is dedicated to managing the usb protocol in both the host mode and the function mode. the control and status registers of the at43usb370 are mapped into its data memory for fast and easy access. the firmware running on this controller determines its operating mode, either host or function. system interface controller this internal microcontroller serves as an interface between the usb controller and the exter- nal system processor. firmware running on this controller manages the data flow to and from the system processor. it also provides a generic usb device driver interface to system applications. fifo the fifo block contains one data fifo block and one control fifo block. the control fifo has a 128 bytes of memory which is divided into one tx and one rx control fifo. at43usb370 uses this fifo for the bi-directional control endpoint. the data fifo has 2 kbytes of memory. the fifo control logic allows for dynamic configura- tion of the data fifo. in host mode, the fifo memory is divided into 1 kbytes of tx transfer and 1 kbytes of rx transfer. the husbcd uses this memory for storing data packets. in the event of an error during a usb transaction, the sie controller is informed of the error and the transaction is retried. in function mode, the fifo is divided into two 1 kbytes blocks, one for the in endpoints and one for the out endpoints. each of the 1 kbytes endpoint block can then be dynamically con- figured during runtime to support up to 3 endpoint in the same direction, but of varying maximum packet sizes. control and status registers this block is used to configure the at43usb370 at the start of operation. the usbc and the sic share this register set with the system processor interface logic. by default this block is pre-configured for host operation with the dma enabled for the 32-bit data bus. in function mode, this block is used to define the number and nature of the endpoints for the function. a maximum of 3 in and 3 out endpoints can be specified aside from the bi- directional control endpoint. endpoint type and, maximum packet size and other parameters are also defined using this block.
8 at43usb370 3340b?usb?12/03 a subset of the control and status register set, the system processor interface registers, is accessible by the system processor as external memory locations. it is used to facilitate data exchange between the system processor and the at43usb370. system processor interface the system processor interface provides 32-bit bi-directional data paths to the external pro- cessor for read and write operations to the at43usb370's system interface registers and fifo. the at43usb370 appears as a memory mapped peripheral to the external system pro- cessor. the interface logic requires a number of control lines and an 8-bit address bus. dma the dma engine provides dma support for the syst em processor to transfer data between the processor's memory and the at43usb370's internal fifo. the system processor's dma con- troller controls the dma operation through standard dma request and acknowledgement signals. the at43usb370 can only operate as a dma slave. oscillator and pll xtal1 and xtal2 are the clock pins to the at43usb370. an external oscillator or a crystal can be connected to these pins. all clock signals required to operate the at43usb370 are derived from the on-chip pll. the on-chip pll is of a special, low-drive type, designed to operate with most of the 6-mhz crystals without any external components. the crystal must be of the parallel resonance type requiring a load capacitance of about 10 pf. if the crystal requires a higher value capacitance, external capacitors can be added to the two terminals of the crystal and ground to meet the required value. to assure a quick start-up, a crystal with a high q, or low esr, should be used. the 48-mhz clock can also be externally sourced. in this case, the clock source is connected to xtal1 pin with xtal2 pin left open and the clk_sel pin tied to logic ?1?. for proper operation of the pll, an external rc filter consisting of a series rc network of 470 ? and 22 nf in parallel with a 2.2 nf capacitor must be connected from the lft pin to v ss . only high-quality ceramic capacitors are recommended. figure 3 shows the required crystal and external circuitry. figure 3. oscillator and pll at43usb370 xtal1 xtal2 6 mhz r1 470 c1 22 nf c2 2.2 nf lft
9 at43usb370 3340b?usb?12/03 reset the reset signal to the at43usb370 is active low. on reset, both the usbc and sic are ini- tialized and the system processor interface registers are restored to their default values. figure 4 shows the reset timing diagram. for reset timing, see table 5 on page 47. figure 4. reset timing power supply the at43usb370 requires an external supply of 3.3 v and 1.8 v. firmware download mechanism the at43usb370 provides an in-system programming of the usbc and the sic through the external system processor. programming requires select, prog, ready and done con- trol signals. these control i/os are dedicated to in-system firmware download and are not used during normal operation. the firmware is downloaded in the program memories (sram) of the internal controllers after power-up or reset. the select signal is used to select the usbc or the sic for program- ming. the prog signal is used to mark the start and end of firmware download. the ready and done signals are used for handshaking duri ng successive programming write cycles. the programming sequence of an internal controller is described as follows: 1. one of the controllers is selected using the select pin of the at43usb370. logic low selects the usbc and logic high selects the sic. the order of programming of the con- trollers is immaterial. any of the controllers can be programmed first. 2. the prog pin is asserted high by the system processor to indicate the start of programming. 3. the system processor writes to a dummy address (anywhere in the at43usb370 addressable space of the memory mapping) to assert cs_n and we_n to at 4 3 u sb 3 7 0 . 4. the system processor writes the 32-bit program word on the data bus. 5. the system processor waits for ready to be asserted high by the at43usb370. 6. at43usb370 asserts ready logic high to signal to the system processor that the 32-bit data word has been written to the program memory of the selected controller. 7. the system processor asserts the done signal high after detecting logic high on ready 8. at43usb370 asserts ready logic low. 9. the system processor asserts logic low on done. 10. this completes one 32-bit write cycle of the controller's programming. steps 2 to 8 repeated until the entire firmware is downloaded in the program memory of the selected controller. 11. step 1 is then repeated to select the remaining controller. step 2 to 9 are repeated to program the remaining controller. 12. the prog is de-asserted by the system processor once the firmware download is complete. this signals an end of in-system programming of the at43usb370. the 32-bit word written by the system processor to its system bus must conform to the follow- ing format:  bits15:0: address of the instruction t r reset_n
10 at43usb370 3340b?usb?12/03  bits 31:16: the actual instruction itself both controllers reset internally and start executing the firmware when prog is de-asserted. the at43usb370 starts its operation as a usb host or usb function depending upon the firmware downloaded by the system processor. figure 5 and figure 6 illustrate the programming waveform for the usbc and the sic respectively. figure 5. typical usb controller's programming waveform figure 5 shows the programming waveform for the sic. figure 6. typical system interface controller programming waveform select prog cs_n we_n data ready done t dr select prog cs_n we_n data ready done t dr
11 at43usb370 3340b?usb?12/03 system processor interface register set the system processor interface register set is used by the at43usb370 to interact with the system processor. the same register set is used in both the host and the function modes except where explicitly stated. all registers are 32-bit wide and require access on 4-bytes boundaries. reading a register for which the external system processor does not have read access will yield a zero value result. writing to a register for which the external system processor does not have write access has no effect. for detailed usage of the registers, please refer to the at43usb370 software development guide . naming convention the following naming convention applies to the system processor interface register set.  three different fields in the register name are separated by underscores '_'  the first field in the register name is a prefix indicating the write access identification literal: ? usbp indicates the register is always written by the at43usb 370 usb processor ? sysp indicates the register is always written by the system processor  the second field in the register name indicates the functionality of the register  the third field in the register name is a suffix 'reg' common to all the registers table 1 . system processor interface register set s.n. address host/device name function 1 0x00 h/d sysp_cmd_reg command register 2 0x04 h/d usbp_req_reg request register 3 0x08 h sysp_cmdid_reg command id register (system processor) 4 0x0c h/d usbp_cmdid_reg command id register (usb processor) 5 0x10 h/d usbp_execmdid_reg executed command id register 6 0x14 h/d usbp_cmdresp_reg command response register 7 0x18 h sysp_devaddr_reg device address register (system processor) 8 0x1c h usbp_devaddr_reg device address register (usb processor) 9 0x20 h/d sysp_epaddr_reg endpoint address register (system processor) 10 0x24 h usbp_epaddr_reg endpoint address register (usb processor) 11 0x28 h sysp_pkttype_reg packet type register 12 0x2c h usbp_classcd_reg class code register 13 0x30 h usbp_sclasscd_reg subclass code register 14 0x34 h usbp_prtlcd_reg protocol code register 15 0x38 h usbp_vendid_reg vendor id register 16 0x3c h usbp_prodid_reg product id register 17 0x40 h usbp_hubaddr_reg hub's device address register 18 0x44 h usbp_portnum_reg hub' s port number register 19 0x48 h sysp_pktsize_reg packet size register 20 0x4c h sysp_rtycnt_reg retry count register 21 0x50 h/d sysp_xfrmode_reg data transfer mode register
12 at43usb370 3340b?usb?12/03 register set description sysp_cmd_reg ? command register the system processor software writes in this register.  bit 7:0 - cmd_value unique value of the command is sued by the system processor so ftware. the following values are valid.  bit 31:8 - rs reserved. must be reset to zero by the system processor software. this register is used by the system processor software to write the command code while issu- ing a command to the usb processor. after power-up or reset, this register will contain the value of 0x00. 22 0x54 h/d sysp_sndaddr_reg send data address register 23 0x58 h/d sysp_sndcnt_reg send data count register 24 0x5c h/d sysp_getaddr_reg get data address register 25 0x60 h/d sysp_getcnt_reg get data count register 26 0x64 h/d usbp_xfraddr_reg transfer address register 27 0x68 h/d usbp_xfrcnt_reg transfer count register 28 0x6c h usbp_cntxfrd_reg count transferred register 29 0x70 d sysp_cmdparam_reg command parameter register 30 0x74 d usbp_congnum_reg device c onfiguration number register 31 0x78 d usbp_intrnum_reg device interface number register 32 0x7c d usbp_alstnum_reg device alternate setting number register 33 0x80 d usbp_reqparm0_reg request parameter 0 register 34 0x84 d usbp_reqparm1_reg request parameter 1 register 35 0x88 h/d prms_handshake_reg parameters handshake register 36 0x8c - 0xfe reserved unused 37 0xff h/d sysp_fifodata_reg fifo data access register table 1 . system processor interface register set (continued) s.n. address host/device name function bit 31 8 7 0 0x00 rs cmd_value sysp_cmd_reg read/write usb processor r system processor w initial value 0x0 mode host/device
13 at43usb370 3340b?usb?12/03 usbp_req_reg ? request register the usb processor writes in this register.  bit 7:0 - req_value unique value of the request issued by the usb processor. the following definitions are valid.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the request code while issuing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. sysp_cmdid_reg ? command id register (system processor) the system processor software writes in this register.  bit 7:0 - scmd_id command id of the command referenced by the system processor software.  bit 31:8 - rs reserved. must be reset to zero by the system processor software. this register is used by the system processor software to write the command id of a particular command issued earlier. this may be required w here a reference to some previous command is required while issuing the command. after power-up or reset, this register will contain the value of 0x00. bit 31 8 7 0 0x04 rs req_value usbp_req_reg read/write usb processor w system processor r initial value 0x0 mode host/device bit 31 8 7 0 0x08 rs scmd_id sysp_cmdid_reg read/write usb processor r system processor w initial value 0x0 mode host
14 at43usb370 3340b?usb?12/03 usbp_cmdid_reg ? command id register (usb processor) the usb processor writes in this register.  bit 7:0 - ucmd_id command id of the command issued by the usb processor.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the command id in response to a com- mand issued by the system processor software. after power-up or reset, this register will contain the value of 0x00. usbp_execmdid_reg ? executed command id register the usb processor writes in this register  bit 7:0 - exe_cmd_id command id of the command executed.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the command id of a particular command executed by the usb processor. after power-up or reset, this register will contain the value of 0x00. bit 31 8 7 0 0x0c rs ucmd_id usbp_cmdid_reg read/write usb processor w system processor r initial value 0x0 mode host/device bit 31 8 7 0 0x10 rs exe_cmd_id usbp_execmdid_reg read/write usb processor w system processor r initial value 0x0 mode host/device
15 at43usb370 3340b?usb?12/03 usbp_cmdresp_reg ? command response register the usb processor writes in this register.  bit 7:0 - cmd_resp response of the command executed.  bit 31:8 - rs reserved. reset to zero by the usb processor. sysp_devaddr_reg ? device address register (system processor) the system processor software writes in this register.  bit 7:0 - sdev_addr device address of the target device.  bit 31:8 - rs reserved. must be reset to zero by the system processor software. this register is used by the system processor software to write the address of the device for which a command is being issued to the usb processor. after power-up or reset, this register will contain the value of 0x00. bit 31 8 7 0 0x14 rs cmd_resp usbp_cmdresp_reg read/write usb processor w system processor r initial value 0x0 mode host/device bit 31 8 7 0 0x18 rs sdev_addr sysp_devaddr_reg read/write usb processor r system processor w initial value 0x0 mode host
16 at43usb370 3340b?usb?12/03 usbp_devaddr_reg ? device address register (usb processor) the usb processor writes in this register.  bit 7:0 - udev_addr device address of the target device.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the address of the device for which a request is being issued to the system processor software. after power-up or reset, this register will contain the value of 0x00. sysp_epaddr_reg ? endpoint address register (system processor) the system processor software writes in this register.  bit 3:0 - sep_addr endpoint address of the target endpoint.  bit 31:4 - rs reserved. must be reset to zero by the system processor software. this register is used by the system processor software to specify the endpoint address. after power-up or reset, this register will contain the value of 0x00 bit 31 8 7 0 0x1c rs udev_addr usbp_devaddr_reg read/write usb processor w system processor r initial value 0x0 mode host bit 31 4 3 0 0x20 rs sep_ addr sysp_epaddr_reg read/write usb processor r system processor w initial value 0x0 mode host/device
17 at43usb370 3340b?usb?12/03 usbp_epaddr_reg ? endpoint address register (usb processor) the usb processor writes in this register.  bit 3:0 - uep_addr endpoint address of the target endpoint.  bit 31:4 - rs reserved. must be reset to zero by the usb processor. this register is used by the usb processor to specify the endpoint address. after power-up or reset, this register will contain the value of 0x00. sysp_pkttype_reg ? packet type register the system processor software writes in this register.  bit 2:0 - pkt_type packet type (in/out/setup) with data toggle (0/1) value of the packet. the following defini- tions are valid.  bit 31:3 - rs reserved. must be reset to zero by the system processor software. this register is used by the system processor software to write the packet type and data toggle value while issuing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. bit 31 4 3 0 0x24 rs uep_ addr usbp_epaddr_reg read/write usb processor w system processor r initial value 0x0 mode host bit 31 3 2 0 0x28 rs pkt_ type sysp_pkttype_reg read/write usb processor r system processor w initial value 0x0 mode host pkt_type value (hex) description pkt_no_dt 00 packet type - data toggle value not specified. data toggle will be managed internally by the usb processor pkt_data_0 01 packet type - data toggle 0 pkt_data_1 02 packet type - data toggle 1 pkt_setup 03 packet type - setup
18 at43usb370 3340b?usb?12/03 usbp_classcd_reg ? class code register the usb processor writes in this register.  bit 7:0 - class_cd class code value of the device.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the class code value while issuing a request to the system processor software. after powe r-up or reset, this register will contain the value of 0x00. usbp_sclasscd_reg ? subclass code register the usb processor writes in this register.  bit 7:0 - sclass_cd subclass code value of the device.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the sub-class code value while issuing a request to the system processor software. after powe r-up or reset, this register will contain the value of 0x00. bit 31 8 7 0 0x2c rs class_cd usbp_classcd_reg read/write usb processor w system processor r initial value 0x0 mode host bit 31 8 7 0 0x30 rs sclass_cd usbp_sclasscd_reg read/write usb processor w system processor r initial value 0x0 mode host
19 at43usb370 3340b?usb?12/03 usbp_prtlcd_reg ? protocol code register the usb processor writes in this register.  bit 7:0 - prtl_cd protocol code value of the device.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the protocol code value while issuing a request to the system processor software. after powe r-up or reset, this register will contain the value of 0x00. usbp_vendid_reg ? vendor id register the usb processor writes in this register.  bit 15:0 - vend_id vendor id of the usb device.  bit 31:16 - rs reserved. reset to zero by the hscid. this register is used by the usb processor to specify the vendor id while issuing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. bit 31 8 7 0 0x34 rs prtl_cd usbp_prtlcd_reg read/write usb processor w system processor r initial value 0x0 mode host bit 31 16 15 0 0x38 rs vend_id usbp_vendid_reg read/write usb processor w system processor r initial value 0x0 mode host
20 at43usb370 3340b?usb?12/03 usbp_prodid_reg ? product id register the usb processor writes in this register.  bit 15:0 - prod_id product id of the usb device.  bit 31:16 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to specify the product id while issuing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. usbp_hubaddr_reg ? hub?s device address register the usb processor writes in this register.  bit 7:0 - hub_addr device address of the hub to which the usb device is connected.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the device address of the hub to which a usb device is connected while issuing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. bit 31 16 15 0 0x3c rs prod_id usbp_prodid_reg read/write usb processor w system processor r initial value 0x0 mode host bit 31 8 7 0 0x40 rs hub_addr usbp_hubaddr_reg read/write usb processor w system processor r initial value 0x0 mode host
21 at43usb370 3340b?usb?12/03 usbp_portnum_reg ? hub?s port number register the usb processor writes in this register.  bit 7:0 - port_num port number of the hub to which the usb device is connected.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the port number of the hub to which a usb device is connected while issuing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. sysp_pktsize ? packet size register the system processor software writes in this register.  bit 15:0 - pkt_size packet size in bytes.  bit 31:16 - rs reserved. must be reset to zero by the system processor software. this register is used by the system processor software to specify the packet size while issuing a command to the usb processor. this packet size is used by the usb processor for every transaction associated with this command. after power-up or reset, this register will contain the value of 0x00 bit 31 8 7 0 0x44 rs port_num usbp_portnum_reg read/write usb processor w system processor r initial value 0x0 mode host bit 31 16 15 0 0x48 rs pkt_size usbp_pktsize_reg read/write usb processor r system processor w initial value 0x0 mode host
22 at43usb370 3340b?usb?12/03 sysp_rtycnt_reg ? retry count register the system processor software writes in this register.  bit 7:0 - cmd_value retry count for every transaction associated with this command.  bit 31:8 - rs reserved. must be reset to zero by the system processor software. this register is used by the system processor software to specify the retry count for every transaction associated with this command while issuing a command to the usb processor. after power-up or reset, this register will contain the value of 0x00. sysp_xfrmode_reg ? data transfer mode register the system processor software writes in this register.  bit 1:0 - tmode data transfer mode.  bit 31:2 - rs reserved. must be reset to zero by the system processor software. this register is used by the system processor to specify the mode with which it wants to trans- fer data while issuing a command to the hsicd. after power-up or reset, this register will contain the value of 0x00. bit 31 8 7 0 0x4c rs rty_cnt sysp_rtycnt_reg read/write usb processor r system processor w initial value 0x0 mode host bit 31 1 0 0x50 rs tmod e sysp_xfrmode_reg read/write hsicd r system processor w initial value 0x0 mode host/device tmode value (hex) description xfrmode_dma 01 (data) transfer mode - dma xfrmode_dma 02 (data) transfer mode - direct fifo
23 at43usb370 3340b?usb?12/03 sysp_sndaddr_reg ? send data address register the system processor software writes in this register.  bit 31:0 - snd_addr start address of the buffer for sending data. this register is used by the system processor software to specify the start address of the data buffer while issuing a command to the usb processor to transfer data from the system proces- sor software's memory to a usb device. after power-up or reset, this register will contain the value of 0x00. sysp_sndcnt_reg ? send data count register the system processor software writes in this register.  bit 31:0 - snd_cnt count of the buffer for sending data. this register is used by the system processor software to specify the size of the data buffer while issuing a command to the usb processor to transfer data from the system processor software's memory to the usb device. this is the size of the buffer whose address is specified in send data address register. after power-up or reset, this register will contain the value of 0x00. bit 31 0 0x54 snd_addr sysp_sndaddr_reg read/write usb processor r system processor w initial value 0x0 mode host/device bit 31 0 0x58 snd_cnt sysp_sndcnt_reg read/write usb processor r system processor w initial value 0x0 mode host/device
24 at43usb370 3340b?usb?12/03 sysp_getaddr_reg ? get data address register the system processor software writes in this register.  bit 31:0 - get_addr start address of the buffer for storing data. this register is used by the system processor software to specify the start address of the data buffer while issuing a command to the usb processor to transfer data from the usb device to the system processor software's memory. after power-up or reset, this register will contain the value of 0x00. sysp_getcnt_reg ? get data count register the system processor software writes in this register.  bit 31:0 - get_cnt count of the data buffer for receiving data. this register is used by the system processor software to specify the size of the data buffer while issuing a command to the usb processor to transfer data from the usb device to the system processor software's memory. this is the size of the buffer specified in get data address register. after power-up or reset, this register will contain the value of 0x00. bit 31 0 0x5c get_addr sysp_getaddr_reg read/write usb processor r system processor w initial value 0x0 mode host/device bit 31 0 0x60 get_cnt sysp_getcnt_reg read/write usb processor r system processor w initial value 0x0 mode host/device
25 at43usb370 3340b?usb?12/03 usbp_xfraddr_reg ? transfer address register the usb processor writes in this register.  bit 31:0 - xfr_addr address for the data transfer. this register is used by the usb processor to specify the start address of the memory while issuing a request to system processor software to transfer data. after power-up or reset, this register will contain the value of 0x00. usbp_xfrcnt_reg ? transfer count register the usb processor writes in this register.  bit 31:0 - xfr_cnt transfer count in bytes. this register is used by the usb processor to specify the number of bytes while issuing a request to the system processor software to transfer data. this register specifies the count to be transferred from the location specified in the transfer address register. after power-up or reset, this register will contain the value of 0x00. bit 31 0 0x64 xfr_addr usbp_xfraddr_reg read/write usb processor w system processor r initial value 0x0 mode host/device bit 31 0 0x68 xfr_cnt usbp_xfrcnt_reg read/write usb processor w system processor r initial value 0x0 mode host/device
26 at43usb370 3340b?usb?12/03 usbp_cntxfrd_reg ? count transferred register the usb processor writes in this register.  bit 31:0 - cnt_xfrd count transferred in bytes. this register is used by the usb processor to specify the number of bytes actually transferred while issuing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. sysp_cmdparam_reg ? command parameter register the system processor software writes in this register.  bit 7:0 - cmd_prm command-specific parameter.  bit 31:8 - rs reserved. must be reset to zero by the system processor software. this register is used by the system processor software to write command-specific parameters while issuing a command to the usb processor. after power-up or reset, this register will con- tain the value of 0x00. bit 31 0 0x6c cnt_xfrd usbp_cntxfrd_reg read/write usb processor w system processor r initial value 0x0 mode host bit 31 8 7 0 0x70 rs cmd_prm sysp_cmdparam_reg read/write usb processor r system processor w initial value 0x0 mode device
27 at43usb370 3340b?usb?12/03 usbp_congnum_reg ? device configuration number register the usb processor writes in this register.  bit 7:0 - cong_num configuration number.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the configuration number while issuing a request to the system processor software. after powe r-up or reset, this register will contain the value of 0x00. usbp_intrnum_reg ? device interface number register the usb processor writes in this register.  bit 7:0 - intr_num interface number.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the interface number while issuing a request to the system processor software. after powe r-up or reset, this register will contain the value of 0x00. bit 31 8 7 0 0x74 rs cong_num usbp_congnum_reg read/write usb processor w system processor r initial value 0x0 mode device bit 31 8 7 0 0x78 rs intr_num usbp_intrnum_reg read/write usb processor w system processor r initial value 0x0 mode device
28 at43usb370 3340b?usb?12/03 usbp_alstnum_reg ? device alternate setting number register the usb processor writes in this register.  bit 7:0 - alst_num alternate setting number.  bit 31:8 - rs reserved. reset to zero by the usb processor. this register is used by the usb processor to write the interface alternate setting number while issuing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. usbp_reqparm0_reg ? request parameter 0 register the usb processor writes in this register.  bit 31:0 - req_prm0 request-specific parameter 0 value. this register is used by the usb processor to write the request-specific parameters while issu- ing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. bit 31 8 7 0 0x7c rs alst_num usbp_alstnum_reg read/write usb processor w system processor r initial value 0x0 mode device bit 31 0 0x80 req_prm0 usbp_reqparm0_reg read/write usb processor w system processor r initial value 0x0 mode device
29 at43usb370 3340b?usb?12/03 usbp_reqparm1_reg ? request parameter 1 register the usb processor writes in this register.  bit 31:0 - req_prm1 request-specific parameter 1 value. this register is used by the usb processor to write the request-specific parameters while issu- ing a request to the system processor software. after power-up or reset, this register will contain the value of 0x00. prms_handshake_reg ? parameters handshake register the system processor and the at43usb370 write in this register. bit 0 - rs reserved. reset to zero by the usb processor.  bit 1 - rdone request done. this bit must be set by the system processor whenever it has finished reading the request registers on an interrupt from the usb processor. the usb processor polls for this bit to be set before issuing an interrupt to the system processor. this bit, when set, indicates to the usb processor that the system processor has read the request parameter registers of the previous interrupt. the usb processor reset this bit to 0 before issuing the next interrupt to the system processor.  bit 31:2 - rs reserved. must be reset to zero by the system processor. this register is used by the system processor and at43usb370 as a handshake register to ensure that various registers written by one processor are not modified without being first read by the other processor. after power-up or reset, this register will contain the value of 0x02. bit 31 0 0x84 req_prm1 usbp_reqparm1_reg read/write usb processor w system processor r initial value 0x0 mode device bit 31 2 10 0x88 r d o n e r s prms_handshake_reg read/write usb processor r/w system processor w initial value 0x2
30 at43usb370 3340b?usb?12/03 sysp_fifodata_reg ? fifo data access register the usb processor writes in this register.  bit 31:0 - fifo data access register actual data to and from the fifo. this register is used by the system processor to either fetch the data from the at43usb370 or push the data into the at43usb370 fifo. after power-up or reset, this register will contain the value of 0x00. bit 31 0 0xff fifo data sysp_fifodata_reg read/write at43usb370 system processor r/w initial value 0x0 mode host device
31 at43usb370 3340b?usb?12/03 data transfer mechanisms the at43usb370 supports three types of data transfer mechanisms  programmable io (pio) interface  direct fifo interface  dma interface programmable i/o interface the programmable input/output interface is used by the system processor to perform single or multiple read/write operations to the at43u sb370's system processor interface registers. a pio write operation allows the system processor to write to the at43usb370 register(s). sim- ilarly a pio read operation allows the system processor to read the at43usb370 register(s). pio operation is required to set-up dma/direct fifo transfer. there are two signals required to be asserted/pulsed prior to pio operation, the more and intr_in signals. intr_in to initiate a read/write cycle to an at43usb370's system processor interface register (pio operation), the system processor issues an in terrupt to the at43usb370 on the intr_in line. figure 7 shows the timing of intr_in pulse. figure 7. intr_i timing more the more signal is used to inform the at43usb370 firmware when to enter and exit pio operation. it needs to be asserted prior to the intr_in pulse and de-asserted at the end of the pio operation. pio read the following sequence illustrates a typical pio read operation by the system processor, a read from the at43usb370 register(s). to perform more than one read operation in one pio transaction, the system processor asserts the more line before the first read operation. the at43usb370 polls this line every time a read operation is completed. 1. the system processor asserts the more signal to mark the start of register(s) read operation through the pio. 2. the system processor sends an interrupt pulse on intr_in to at43usb370 to initiate a pio read operation. 3. the at43usb370 asserts the ready signal and enters in the pio scan mode. 4. the system processor places the address of the at43usb370 register on the address bus. 5. the system processor starts the pio read operation by asserting the cs_n signal. 6. the at43usb370 asserts the wait_n signal. 7. the system processor asserts the oe_n signal. 8. the at43usb370 reads the register address from the address bus and puts the con- tents of the register on the data bus. 9. the at43usb370 de-asserts the wait_n signal 10. the system processor reads the data present on the data bus. 11. the system processor de-asserts the oe_n signal t iih
32 at43usb370 3340b?usb?12/03 12. the system processor de-asserts the cs_n signal. this completes a single pio read operation. 13. the at43usb370 samples the more signal: ? if de-asserted, the at43usb370 de-asserts the ready signal and exits the pio mode. ? if asserted, the at43usb370 remains in the pio mode and the pio read operation is repeated from sequence 4. note: the following sequences may be used interchangeably depending of the system processor used: - sequence 4 and 5 - sequence 6 and 7 figure 8 shows two consecutive pio read operations. for timing specifications of the pio transfer, please see table 4 on page 46. figure 8. pio read operation cs_n wait_n addr oe_n data t csn data addr addr more data intr_n t iih t css t wca t wait t dhr ready t pod
33 at43usb370 3340b?usb?12/03 pio write the following sequence illustrates a typical pio write operation by the system processor, a write to the at43usb370 register(s). to perform multiple write operations within one pio transaction, the system processor asserts the more line before the first write operation. the at43usb370 polls this line every time a write operation is completed. 1. the system processor asserts the more signal to mark the start of register(s) write operation through pio. 2. the system processor sends an interrupt pulse on intr_in to at43usb370 to initiate a pio write operation. 3. the at43usb370 asserts the ready signal and enters in the pio scan mode. 4. the system processor places the address of the at43usb370 register on the address bus. 5. the system processor starts the pio write operation by asserting the cs_n signal. 6. the system processor asserts the we_n signal. 7. the system processor puts the data on the data bus. 8. the at43usb370 asserts the wait_n signal. 9. the at43usb370 reads the register address from the address bus and copies the contents of the data bus to the target register. 10. the at43usb370 de-asserts the wait_n signal 11. the system processor de-asserts the we_n signal 12. the system processor de-asserts the cs_n signal. this completes a single pio write operation. 13. the at43usb370 samples the more signal: ? if de-asserted, the at43usb370 de-asserts the ready signal and exits the pio mode. ? if asserted, the at43usb370 remains in the pio mode and the pio write operation is repeated from sequence 4. note: the following sequences may be used interchangeably depending of the system processor used: - sequence 4 and 5 - sequence 6,7 and 8 figure 9 shows two consecutive pio write operations. for timing specifications of the pio transfer, please see table 4 on page 46.
34 at43usb370 3340b?usb?12/03 figure 9. pio write operation cs_n wait_n addr we_n data t csn addr addr more intr_n t iih t wca t css t pwait t dhw ready t dsw data data
35 at43usb370 3340b?usb?12/03 direct fifo interface the system processor can directly read from or write to the at43usb370's on-chip fifo through the direct fifo interface. the direct fifo interface for the at43usb370 can be con- figured by the system processor by writing 0x ff on the address bus. the data can be pushed into the fifo or read from it by the system processor using any normal memory read/write operations. direct fifo read figure 10 shows the timing of a fifo read operation performed by the system processor using the direct fifo interface. 1. the system processor starts the direct fifo read operation by placing the 0xff address on the address bus. 2. the system processor asserts the cs_n signal. 3. the at43usb370 asserts the wait_n signal. 4. the system processor asserts the oe_n signal. 5. the at43usb370 reads the direct fifo address (0xff) from the address bus and puts a word (32 bytes) from the fifo on the data bus. 6. the at43usb370 de-asserts the wait_n signal. 7. the system processor reads the data present on the data bus. 8. the system processor de-asserts the oe_n signal. 9. the system processor de-asserts the cs_n signal. this completes a single direct fifo read operation. note: the following sequences may be used interchangeably depending of the system processor used: - sequence 3 and 4 the system processor can perform further direct fifo read operations by repeating sequences 1-9. each direct fifo read operation will fetch a single word from the at43usb370's fifo and place it on the data bus. this applies to a 32-bit data bus. figure 10. direct fifo read operation cs_n wait_n addr oe_n data t csn data addr 0xff addr 0xff data t css t wca t dfwr t dhr t dfod
36 at43usb370 3340b?usb?12/03 direct fifo write figure 11 shows the timing of a fifo write operation performed by the system processor using the direct fifo interface. 1. the system processor starts the direct fifo write operation by placing the 0xff address on the address bus. 2. the system processor asserts the cs_n signal. 3. the system processor asserts the we_n signal. 4. the system processor puts the data on the data bus. 5. the at43usb370 asserts the wait_n signal. 6. the at43usb370 reads the direct fifo address (0xff) from the address bus and copies the contents of the data bus to the fifo. 7. the at43usb370 de-asserts the wait_n signal. 8. the system processor de-asserts the we_n signal 9. the system processor de-asserts the cs_n signal. this completes a single direct fifo write operation. note: the following sequences may be used interchangeably depending of the system processor used: - sequence 3,4 and 5 the system processor can perform further direct fifo write operations by repeating sequences 1-9. each direct fifo write operation will push a single word from the data bus to the at43usb370's fifo. this applies to a 32-bit data bus. figure 11. direct fifo write operation cs_n wait_n addr we_n data t csn addr 0xff addr 0xff t wca t css t dfww t dhw t dsw data data
37 at43usb370 3340b?usb?12/03 dma interface the dma interface is used for data transfer between at43usb370's internal fifo and the system processor's memory. the at43usb370 generates a request to initiate the dma pro- cess by asserting the dreq_n signal. it uses the block mode to transfer data through dma. in this mode, all requested data are transferred upon the assertion of a single dma request. the dreq_n signal is de-asserted by at43usb370 after the dack_n signal has been asserted by the system processor. the dma transfer is completed when the transfer count reaches zero in the dma controller of the system processor. the dma engine of the at43ubs370 manages the count of the dma transfers itself. the at43usb370 uses a fixed source/destina- tion address of 0x80 for rx/tx dma transfers respectively, and the at43usb370 can only operate as a dma slave. figure 12 and figure 13 show the dma read and write operations respectively. dma read 1. the at43usb370 asserts the dreq_n signal to start the dma operation. 2. the system processor asserts the dack_n signal. 3. the at43usb370 de-asserts the dreq_n signal. 4. the system processor asserts the cs_n signal. 5. the system processor asserts the oe_n signal. 6. the at43usb370 places the contents of its fifo on the data bus. 7. the system processor reads the data present on the data bus. 8. the system processor de-asserts the oe_n signal 9. the system processor de-asserts the cs_n signal. 10. the system processor de-asserts the dack_n signal. this completes a single dma read cycle. if more dma read cycles are to follow, the system processor asserts the dack_n signal and sequences 4 to 10 repeat. notes: 1. the following sequence may be used interchangeably depending of the system processor used: sequence 3 may occur after sequence 4 or 5. 2. wait_n is not used by at43usb370 during dma a operation. figure 12. dma read operation cs_n dack_n oe_n data t dai data data dreq_n t css t dma t dhr t dsr t doe
38 at43usb370 3340b?usb?12/03 dma write 1. the at43usb370 asserts the dreq_n signal to start the dma operation. 2. the system processor asserts the dack_n signal. 3. the at43usb370 de-asserts the dreq_n signal. 4. the system processor asserts the cs_n signal. 5. the system processor asserts the we_n signal. 6. the system processor puts the data on the data bus. 7. the at43usb370 reads the contents of the data bus to its fifo. 8. the system processor de-asserts the we_n signal 9. the system processor de-asserts the cs_n signal. 10. the system processor de-asserts the dack_n signal. this completes a single dma write cycle. if more dma write cycles are to follow, the system processor asserts the dack_n signal and sequences 4 to 10 repeat. notes: 1. the following sequence may be used interchangeably depending of the system processor used: - sequence 5 and 6 - sequence 3 may occur after sequence 4 or 5 2. wait_n is not used by at43usb370 during a dma operation. figure 13. dma write operation cs_n dack_n we_n data t dai data data dreq_n t css t dma t dhw t dsw
39 at43usb370 3340b?usb?12/03 firmware architecture the at43usb370 firmware model is supported by a set of usb firmware embedded on-chip and a set of system software with associated apis running on the system processor. the apis are used to support the development of usb device drivers of any type. the at43usb37 requires the host firmware when running in the host mode, and the function (or device) firmware when running in the function mode. the following sections describe in detail the firmware architecture of the at43usb370 host/function processor. host firmware the at43usb370 host firmware consists of the host usb controller driver (husbcd) and host system interface controller driver (hsicd). host usb controller driver (husbcd) the husbcd runs on the usbc when the at43usb370 operates in the host mode. this driver performs the following tasks: autonomous hub support the husbcd embeds a complete hub class driv er to provide an autonomous hub support. device enumeration the husbcd enumerates the newly connected device or hub. frame management frame management involves calculating the time required for the next transaction and trans- action completion prediction as described in usb 2.0 specifications. it also includes the determinations the husbcd has to make at the time of enumeration to ensure that the requirements of the newly connected device can be met within the current power and band- width budget of the host. transaction scheduling the husbcd automatically schedules the transactions using the information that it receives from the devices during enumeration. isochronous and interrupt transactions are given up to 90% of the frame time. bulk and control transfers are guaranteed at least 10% of the band- width and are also allocated any available bandwidth not consumed by the isochronous and interrupt transfers. bus reclamation the husbcd implements the bus reclamation mechanism that allows the at43usb370 host to maximize the bus utilization by using all the time left after servicing pending transac- tions to transfer bulk/control data. status handling after a transaction has been completed, the husbcd posts the transaction status to the hsicd. the husbcd also enables and disables the concerned fifos for data and control transfers. host system interface controller driver (hsicd) the hsicd runs on the system interface controller when the at43usb370 is operating in the host mode. this driver performs the following tasks: data transfer management the hsicd handles the data transfer between the usb function and the system processor memory. high level api management a set of c apis and associated usb host system software library constitutes the basic build- ing blocks of usb device drivers of any type. this usb host system software resides on the system processor. the hsicd manages the information exchange between the embedded at43usb370 firmware stack and the host system software running on the system processor through the host system interface apis. for detailed descriptions of the apis, refer to at43usb370 software development guide .
40 at43usb370 3340b?usb?12/03 descriptor management the hsicd gathers the usb descriptors from the usb devices and reports back to system processor through api function calls. usb host system library the usb host system library is comprised of the at43usb370 host system interface apis and the underlying software library. all application-level system software communicates with the at43usb370 through this library. at43usb370 usb host system library and apis the usb host system library provides access to the at43usb370 usb host functionality by the system processor. the corresponding host system interface api set encapsulates the complete usb functionality. it is ansi c compliant and is used for all usb device drivers and applications development. refer to at43usb370 software development guide for detailed descriptions of the at43usb370 apis. system software system software is application specific and resides in the system processor. it communicates with the at43usb370 through the at43usb370 host system interface apis directly or through the standard or application specific usb device drivers built on top the at43usb370 apis. figure 14 shows the at43usb370 host firmware architecture. figure 14. at43usb370 host firmware architecture external system processor system interface controller usb controller at43usb370 hardware host system interface controller driver (husicd) host usb controller driver (husbcd) at43usb370 host system interface apis system application software at43usb370 host system library
41 at43usb370 3340b?usb?12/03 function or device firmware the at43usb370 function or device firmware includes the device usb controller driver (dusbcd) and device system interface controller driver (dsicd). device usb controller driver the dusbcd runs on the usb controller. this driver interacts with the at43usb370 hard- ware and performs usb protocol management relating to the function operation more specifically, the dusbcd performs the following functions: device configuration the dusbcd automatically configures the at43usb370 function for the required features through a descriptor table specified by the system processor. the dusbcd parses the usb standard and class-specific descriptors from this table and stores them in the program mem- ory of the controller. the following features of the at43usb370 function can be configured through the descriptor table.  number of endpoints - maximum of 6 data (3 in and 3 out) endpoints can be supported. a bi-directional control endpoint is supported by default  type of endpoint - any of the interrupt, bulk or isochronous endpoint may be specified  maximum packet size - for every endpoint including the control endpoint  fifo size - for every endpoint  remote wake-up support the format for providing the descriptor table is specified in the at43usb370 software devel- opment guide . fifo configuration the dusbcd configures the fifo according to the maximum packet sizes and endpoint types of the endpoints specified in the descriptor table. it also configures the control and sta- tus registers. device enumeration and standard request handling the dusbcd generates the connect status on usb after parsing the descriptor table and automatically enumerates at43usb370 as a device when it is connected to a usb host. it also handles other standard usb requests issued by the usb host. suspend detection the dusbcd detects the suspend condition when no bus activity is reported from the sie controller for 3 ms. transaction handling the dusbcd automatically handles incoming packets for out endpoints for expected isoch- ronous, bulk and interrupt transactions which are ultimately reported to the external system processor. similarly, it supplies the usb host required data from in endpoints after getting it from the external system processor. device system interface controller driver the dsicd runs on the system interface controller. this driver is responsible for the following functions: data transfer management the dsicd handles the data transfer between the at43usb370 device and the external sys- tem processor's memory. it also provides an interface to specify the descriptor table. high level api management the dsicd provides a generic interface for the system processor in order to achieve maxi- mum ease in the device operation at a high level. the dsicd manages all the information exchange with the external system processor through this interface. in this way, the complex- ity in transferring data over the usb is hidden from the external system processor. for more details about the api, refer to the at43usb370 software development guide .
42 at43usb370 3340b?usb?12/03 usb device system library and apis the usb device system library runs on the external system processor. it provides access to usb functionality of the at43usb370 to the system application running on the system pro- cessor. the system library interfaces to the system application through a set of high level, ansi c compliant apis. the api set encapsulates the usb functionality and is used as the building blocks of any usb application. please refer to the at43usb370 software develop- ment guide for detailed descriptions of the at43usb370 device apis. figure 15 shows the device firmware architecture of the at43usb370. figure 15. at43usb370 device firmware architecture external system processor system interface controller usb controller at43usb370 hardware device system interface controller driver (dsicd) device usb controller driver (dusbcd) at43usb370 device apis system application software at43usb370 host system library
43 at43usb370 3340b?usb?12/03 system processor connection the at43usb370 is typically attached to a system processor through its 32-bit bi-directional data path with additional control lines and an 8-bit address bus. the required interface signals are grouped into the following categories: general interface signals  data bus (d [31:0]) - the 32-bit bi-directional data bus is used to transfer data to and from at43usb370. the at43ubs370 is little-endian compatible.  address bus (a [7:0]) - this is an 8-bit address bus used to address the system processor interface register set of the at43usb370.  chip select (cs_n) - the chip select signal is active low.  output enable (oe_n) - this is the read signal driven by the system processor to read a register or memory location. this signal is active low.  write enable (we_n) - this is the write signal driven by the system processor to write an address, register or memory location. this signal is active low.  wait (wait_n) - this signal is used by the at43usb370 to assert wait states. this signal is active low, and it activates upon the assertion of at43usb370?s cs_n.  busy (busy) - this signal is used by the at43usb370 to signal the system processor not to interrupt the at43usb370. this signal is active high.  more (more) - this signal is used to inform the at43usb370 firmware when to enter/exit a pio operation. interrupt signals  interrupt in (intr_in) - this is an interrupt signal from the system processor to at43usb370. this signal is active high. see ?intr_in? on page 31.  interrupt out (intr_out) - this is an interrupt signal from at43usb370 to the system processor. this signal is active high. it is used to notify the system processor of an event, such as completion of enumeration, completion of commands, or more buffers required. programming signals prog, ready, done, select - these signals are only required for programming the at43usb370 controllers (i.e. the usb controller and system interface controller) through the external system processor. the signals can be directly connected to the processor's gpios. these signals are active high. dma signals dreq_n, dack_n - these are the standard dma control signals used by the at43usb370 for dma transfers with the system processor. these signals are active low. power and i/o cells the at43usb370 requires external 3.3v and 1.8v power supplies. all of the at43usb370's i/o pins are +3.3v tolerant. figure 16 shows typical connection of at43usb370 to a 32-bit system processor.
44 at43usb370 3340b?usb?12/03 figure 16. typical at43usb370 system processor connection 32-bit system processor at43usb370 d [31:0] a [7:0] oe_n we_n dack_n dreq_n intr_out intr_in 6 mhz xtal1 xtal2 usb series a / b connector d + d - host device 1.5 k 15 k system ram more done ready system rom select prog busy cs_n wait_n rpd_en rpu_en 15 k
45 at43usb370 3340b?usb?12/03 electrical specification absolute maximum ratings *stresses beyond those listed below may cause permanent damage to the device. this is a stress rating only and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of this specification is not implied. expo- sure to absolute maximum rating conditions for extended periods may affect device reliability. dc electrical characteristics table 2 . absolute maximum ratings* symbol parameter condition min max unit v cc 3.3v power supply 3.0 3.6 v v in (3.8v) dc input voltage v cc -0.3v v cc +0.3v v v in (1.8v) dc input voltage 1.65 1.95 v t orp operating temperature 0 70 c t stg storage temperature -40 125 c table 3 . power supply symbol parameter condition min max unit v cc power supply 3.0 3.6 v v il input low voltage 0.8 v v ih input high voltage 2.0 v vt switching threshold v v ol output low voltage 0.4 v v oh output high voltage 3.3 v i oz tristate output leakage current a c in input pin capacitance 7.24 pf c out output pin capacitance 6.07 pf c io i/o capacitance 7.27 pf
46 at43usb370 3340b?usb?12/03 ac electrical characteristics system processor interface timing notes: 1. the timing parameters with the * are firmware dependent. the value listed is for library 1.0 release. 2. pio cycle time = t wca + t pwait + t csn ~= 2.8 s 3. dfifo cycle time (write) = t wca + t dfww + t csn = 546 ns 4. dfifo cycle time (read) = t wca + t dfwr + t csn = 462 ns 5. dma cycle time = t dma + t dai = 588 ns table 4 . at43usb370 - system processor interface timing symbol parameter condition min max units t dr done active to ready de-active time programming 42 ns t iih intr_in active time 504 ns t wca cs active to wait active pio, direct fifo 126 ns t css cs active to oe/we active pio, direct fifo, dma 84 ns *t pwait we/oe active to wait de-active pio r/w 2.6 us *t pod pio oe active to data valid pio r 2.6 us t dfww we active to wait de-active direct fifo w 336 ns t dfwr oe active to wait de-active direct fifo r 252 ns t dfod direct fifo oe active to data valid direct fifo r 252 ns t csn cs in-active time pio, direct fifo 84 ns t dai dma ack in-active time dma r/w 42 ns t dma dack active time dma r/w 546 ns t dsw we active to data valid pio, direct fifo, dma w 10 ns t dhw data hold time after we de-active pio, direct fifo, dma w 42 ns t dhr data hold time after oe de-active pio, direct fifo, dma r 5 ns t dsr dma oe active to data valid dma r 126 ns t doe dma oe active time dma r 168 ns
47 at43usb370 3340b?usb?12/03 reset timing table 5 . reset timing symbol parameter condition min max units t r reset width 200 ns table 6 . oscillator signals xtal1, xtal2 symbol parameter condition min max units v lh osc1 switching level 0.47 1.20 v v hl osc2 switching level 0.67 1.44 v cx1 input capacitance xtal1 10 pf tcx2 output capacitance, xtal 2 10 pf c12 oscillator capacitance 5 pf t su start-up time 6 mhz, fundamental 2 ms dl drive level 50 uw
48 at43usb370 3340b?usb?12/03 ordering information program memory ordering code package operation range sram AT43USB370E-AC 100 lqfp commercial (0 c to 70 c)
49 at43usb370 3340b?usb?12/03 packaging information 100-lead ? lqfp 2325 orchard parkway san jose, ca 95131 title drawing no. r rev. 100aa, 100-lead, 14 x 14 mm body size, 1.4 mm body thickness, 0.5 mm lead pitch, low profile quad flat pack (lqfp) c 100aa 04/29/2002 pin 1 identifier 0?~7? pin 1 l c a1 a2 a d1 d e e1 e b a ? ? 1.60 a1 0.05 ? 0.15 a2 1.35 1.40 1.45 d 15.75 16.00 16.25 d1 13.90 14.00 14.10 note 2 e 15.75 16.00 16.25 e1 13.90 14.00 14.10 note 2 b 0.17 ? 0.27 c 0.09 ? 0.20 l 0.45 ? 0.75 e 0.50 typ notes: 1. this package conforms to jedec reference ms-026, variation aed. 2. dimensions d1 and e1 do not include mold protrusion. allowable protrusion is 0.25 mm per side. dimensions d1 and e1 are maximum plastic body size dimensions including mold mismatch. 3. lead coplanarity is 0.08 mm maximum. common dimensions (unit of measure = mm) symbol min nom max note
printed on recycled paper. 3340b?usb?12/03 xm disclaimer: atmel corporation makes no warranty for the use of its products, other than those expressly contained in the company?s standar d warranty which is detailed in atmel?s terms and conditions located on the company?s web site. the company assumes no responsibi lity for any errors which may appear in this document, reserves the right to change devices or specifications detailed herein at any time wi thout notice, and does not make any commitment to update the information contained herein. no licenses to patents or other intellectual property of atmel are granted by the company in connection with the sale of atmel products, expressly or by implication. atmel?s products are not aut horized for use as critical components in life support devices or systems. atmel corporation atmel operations 2325 orchard parkway san jose, ca 95131, usa tel: 1(408) 441-0311 fax: 1(408) 487-2600 regional headquarters europe atmel sarl route des arsenaux 41 case postale 80 ch-1705 fribourg switzerland tel: (41) 26-426-5555 fax: (41) 26-426-5500 asia room 1219 chinachem golden plaza 77 mody road tsimshatsui east kowloon hong kong tel: (852) 2721-9778 fax: (852) 2722-1369 japan 9f, tonetsu shinkawa bldg. 1-24-8 shinkawa chuo-ku, tokyo 104-0033 japan tel: (81) 3-3523-3551 fax: (81) 3-3523-7581 memory 2325 orchard parkway san jose, ca 95131, usa tel: 1(408) 441-0311 fax: 1(408) 436-4314 microcontrollers 2325 orchard parkway san jose, ca 95131, usa tel: 1(408) 441-0311 fax: 1(408) 436-4314 la chantrerie bp 70602 44306 nantes cedex 3, france tel: (33) 2-40-18-18-18 fax: (33) 2-40-18-19-60 asic/assp/smart cards zone industrielle 13106 rousset cedex, france tel: (33) 4-42-53-60-00 fax: (33) 4-42-53-60-01 1150 east cheyenne mtn. blvd. colorado springs, co 80906, usa tel: 1(719) 576-3300 fax: 1(719) 540-1759 scottish enterprise technology park maxwell building east kilbride g75 0qr, scotland tel: (44) 1355-803-000 fax: (44) 1355-242-743 rf/automotive theresienstrasse 2 postfach 3535 74025 heilbronn, germany tel: (49) 71-31-67-0 fax: (49) 71-31-67-2340 1150 east cheyenne mtn. blvd. colorado springs, co 80906, usa tel: 1(719) 576-3300 fax: 1(719) 540-1759 biometrics/imaging/hi-rel mpu/ high speed converters/rf datacom avenue de rochepleine bp 123 38521 saint-egreve cedex, france tel: (33) 4-76-58-30-00 fax: (33) 4-76-58-34-80 literature requests www.atmel.com/literature ? atmel corporation 2003 . all rights reserved. atmel ? and combinations thereof, are the registered trademarks of atmel corporation or its subsidiaries. other terms and product names may be the trademarks of others.


▲Up To Search▲   

 
Price & Availability of AT43USB370E-AC

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X